自学Python编程的第十一天----------来自苦逼的转行人
2019-09-21-23:00:26
今天看了很多博客网的博客,看完觉得自己的博客真的是垃圾中的垃圾
新手不知道怎样写博客,我也很想写好一篇能让人看的博客,但是目前水平不够
只能慢慢改,今天的博客还是按照自己的方式写吧,明天开始学习怎么写一篇好的博客
但是感觉有点难,加油,但是自己写博客也是为了记录自己的学习路程,所以博客得慢慢改
一.重要知识点
1. 动态参数
位置参数的动态参数: *args
关键字参数的动态参数 : **kwargs
顺序:
位置,*args,默认值,**kwargs
在形参上*聚合, **聚合
在实参上*打散, **打散
2. 命名空间和作用域
命名空间:
1. 内置命名空间: python解释内部运行时的变量函数
2. 全局命名空间: 我们在py文件中直接声明出来的变量,函数
3. 局部命名空间: 在函数内部声明的变量和函数.
加载顺序
1.内置名命空间
2.全局名命空间
3.局部名命空间(函数被调用时)
取值顺序
1.局部名命空间
2.全局名命空间
3.内置名命空间
作用域:
1.全局作用域:内置+全局
2.局部作用域:局部
globals() 查看全局作用域中的名字
locals() 查看当前作用域中的名字
3. global和nonlocal
global: 把全局变量拿到局部来用.
nonlocal: 把离他最近的一层的变量拿过来.不会找全局
二.错误总结
1.全局变量和局部变量的关系
# dic_new = {} -->>这个是局部变量,应该放在局部名命空间里
def func(dic):
dic_new = {}
for k,v in dic.items():
if len(v)>2:
dic_new[k]=v[0:2]
else:
dic_new=v
return dic_new
dic= {"k1": "v1v1", "k2": [11,22,33,44]}
print(func(dic))
#出现这个错误的原因是没有考虑局部变量的引用是不能在全局变量里引用
解决方法:了解全局变量和局部变量的概念